﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Negocio;
using System.Data;
using System.Data.SqlClient;
using System.IO;


namespace Presentacion1

{
    

    public partial class _Default : System.Web.UI.Page
    {
        public static int ModificarId { get; set; }

        public static Byte[] Archivo { get; set; }
      
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
                gvMostrar(sender, e);
        }

        protected void Agregar(object sender, EventArgs e)
        {
            
                if (!Page.IsValid)
                    return;
                AccesoLogica negocio = new AccesoLogica();
                string nombre = txtNombre.Text;
                int edadmin = Int32.Parse(txtEdadMin.Text);
                int edadmax = Int32.Parse(txtEdadMax.Text);
                string descripcion = txtDescripcion.Text;
            if (ModificarId == 0)
            {
                int resultado = negocio.Insert(nombre, edadmin, edadmax, descripcion,Archivo);
                if (resultado > 0)
                    lblMensaje.Text = "Nuevo Registro Agregado Satisfactoriamente.";
                else
                    lblMensaje.Text = "Nombre:  [<b>" + txtNombre.Text + "</b>] ya existe, agrege otro";
                negocio = null;
            }
            else
            {
                int resultado = negocio.Update(ModificarId, nombre, edadmin, edadmax, descripcion,Archivo);
                if (resultado > 0)
                    lblMensaje.Text = "Nuevo Registro Modificado Satisfactoriamente.";
                else
                    lblMensaje.Text = "Registro no modificado";
                negocio = null;
            }

            ModificarId=0;

        }

        protected void gvMostrar(object sender, EventArgs e)
        {
            GridView.DataSource = AccesoLogica.ObtenerConcurso();
            GridView.DataBind();
            txtEdadMin.Text = txtNombre.Text = txtEdadMax.Text = txtDescripcion.Text = "";
        }

        protected void GridView_RowCommand(object sender, System.Web.UI.WebControls.GridViewCommandEventArgs e)
        {
            AccesoLogica negocio = new AccesoLogica();
            int index = Convert.ToInt32(e.CommandArgument);
            int value = AccesoLogica.ObtenerId(index);
            if (e.CommandName == "Delete")
            {
            int resultado = negocio.Delete(value);
            if (resultado > 0)
                {
                    lblMensaje.Text = "Registro Borrado Satisfactoriamente.";
                    GridView.DeleteRow(index);
                    GridView.DataSource = AccesoLogica.ObtenerConcurso();
                    GridView.DataBind();
                }
                else
                    lblMensaje.Text = "Registro no borrado";
                negocio = null;

                }
            if (e.CommandName == "Update")
                {
                    txtNombre.Text=AccesoLogica.ObtenerNombre(index);
                    txtEdadMin.Text = AccesoLogica.ObtenerEdadMin(index).ToString();
                    txtEdadMax.Text = AccesoLogica.ObtenerEdadMax(index).ToString();
                    txtDescripcion.Text = AccesoLogica.ObtenerDescripcion(index);
                    ModificarId = value;
                }
        }

        protected void GridView_SelectedIndexChanged(object sender, EventArgs e)
        {

        }


            protected void GridView_RowDeleting(object sender, EventArgs e)
        {

        }

        protected void GridView_RowUpdating(object sender, EventArgs e)
        {

        }

        protected void UploadButton_Click(object sender, EventArgs e)
        {
            if (FileUploadControl.HasFile)
            {
                try
                {
                    string filename = Path.GetFileName(FileUploadControl.FileName);
                    string ruta = Server.MapPath("~/Upload/") + filename;
                    FileUploadControl.SaveAs(Server.MapPath("~/Upload/") + filename);
                    FileStream fs = new FileStream(ruta, FileMode.Open);
                    Byte[] data = new Byte[fs.Length];
                    fs.Read(data, 0, Convert.ToInt32(fs.Length));
                    StatusLabel.Text = "Upload status: File uploaded!";
                    Archivo = data;
                }
                catch (Exception ex)
                {
                    StatusLabel.Text = "Upload status: The file could not be uploaded. The following error occured: " + ex.Message;
                }
            }
        }
}
}
